     HISTORY FILE FOR CHIEF'S INSTALLER PRO FOR WIN16 AND WIN32
     -----------------------------------------------------------

Version 3.60 (June 1997)
---------------------------
1. Bug fixes in the IDE.

2. Bug in WRITEREG and $REG-DATA fixed.

3. New Win32 support DLL (WINSTL32.DLL) introduced. This DLL can 
   be left out of the distribution if you are not shipping Win32
   applications.

4. Intermittent GPFs under NT 4.0 fixed.

5. Enhancements to the UnInstaller.


Version 3.50 (May 1997)
---------------------------
1. $REG-DATA can be used in the $TARGET line to
   read a value from the registry.

2. Literal semi-colons can be put on icon lines ($ICO, $ICON) by using
   2 hashes (i.e., "##") - this gets converted to a semi-colon.

3. Looks for .XTR file for project, also to add contents to template
   INF file; the .XTR file is created when clicking on the "extra" button
   in the Project Manager.

4. New reserved word: "$WRITE-TEXT" - to write to text files; takes the
   same parameters as the WRITETEXT batch command
   e.g. $WRITE-TEXT=$DEST\TT.TXT;1;SETUP=THIS.BAT
   It is processed just before the $INI lines.

5. New reserved word: "$CREATE-FILE" -  creates a new file or overwrites
   existing one. Logs the file for uninstal
   e.g.  $CREATE-FILE=$DEST\TTT.FIL
   It is processed just before the $WRITE-TEXT lines.

6. New batch command "PLAYSOUND" to play WAV files.
   Syntax = PLAYSOUND <.WAV file>

7. New batch command PLAY-AVI to play AVI files.
         Syntax = PLAY-AVI;<.AVI file>[;FULLSCREEN]

8. New batch commands "IF FILEDATE" and "IF NOT-FILEDATE" 
   - to check the date and time stamp on a file;
         Syntax = IF FILEDATE;filename;date;command
                  IF NOT-FILEDATE;filename;date;command
         Date format = dd/mm/yyyy-hh:mm
         e.g.,         29/04/1997-17:45


Version 3.12 (March 1997)
---------------------------
1. This is a maintenance release - contains internal enhancements, etc.

2. New Hebrew language DLLs

3. Bugs fixed in the Project Manager


Version 3.11 (February 1997)
---------------------------
This is a maintenance release - contains internal enhancements, etc.


Version 3.10 (January 1997)
---------------------------
1. Fixes some bugs in the ChiefPro IDE.

2. Fixes a minor bug in the main installer.

3. More functionality added to the IDE.

4. New reserved word: $SKIP-OLDER-FILE - to allow the installer
   to skip specified older files.
	e.g.,
	$SKIP-OLDER-FILE=TROOK.CFG;*.DB;TRAGG.TRK

5. New batch command: SHOW-TEXTFILE - to display a text file
   to the user in a custom dialog box.
	e.g.,
	SHOW-TEXTFILE;$SOURCEDIR\UPGRADE.TXT;Upgrade Notice.

6. Extensions to the ChiefPro IDE;
	"Add Files" button - to allow you to add new files to your project
	without opening the file manager
	"Jump to File" button - to allow you to select a file record from
	a listbox instead of clicking on the "next" or "previous" buttons.


Version 3.00 (January 1997)
---------------------------
This is a MAJOR UPGRADE to Chief's Installer Pro. Please do NOT mix
the files in this version with those of any earlier version.

COMPILER
--------
The file format of the ChiefPro compiler has changed. Any existing
compiled batch or INF file must be recompiled with the v3.00 compiler.

Version 3.00 also contains all the following new features;

1. New reserved word: $COPYRIGHT-MESSAGE - this allows you to prepare a
   copyright message in a text file, and to ask the user to agree to it.
   If the user does not agree, the installation will terminate.
   
   Syntax=   
   $COPYRIGHT-MESSAGE;<filename>;<AgreeButtonTitle>;<DisageeButtonTitle>;<DialogTitle>
   
2. New reserved word: $WELCOME-MESSAGE - this allows you to prepare a
   welcome message in a text file. If the user does not wish to
   continue, the installation will terminate.

	Syntax=   
	$WELCOME-MESSAGE;<filename>;<OkButtonTitle>;<CancelButtonTitle>;<DialogTitle>

3. New batch command: POSTMESSAGE, or SENDMESSAGE
   This command allows you to send a message to an active window (identified
   by it's window title. You can use the wildcard ('*') at the beginning of 
   the window title or at the end of it to siginify that any beginning or 
   ending will be okay. See syntax for EXECWAIT-WINDOW for details.

   Syntax=
   POSTMESSAGE;<windowtitle>;<message>

   List of messages:
          MAX        = sw_Maximize
          MIN        = sw_Minimize
          CLOSE      = Wm_Close
          QUIT       = wm_Quit
          HIDE       = sw_Hide
          SHOW       = sw_Show
          TOPMOST    = HWnd_TopMost
          NOTOPMOST  = HWnd_NoTopMost
          SETFOCUS   = SetFocus

4.  New batch command; IF ACTIVEDLL - to check whether a particular DLL is
    loaded (active) and (optionally) to return its handle if it is active.
    If the DLL is active, then its handle is returned in; ACTIVEDLL

	Syntax=
	IF ACTIVEDLL;<dllname>;<command [ACTIVEDLL]>

5. New batch command; IF REGENTRY - to check whether a registry entry exists.
   It only works in respect of string entries (REG_SZ)

	Syntax=
	IF REGENRY;full-entry;<command [REGENTRY]>

6. New Reserved Word: $SPLASH-MESSAGE - to manipulate the dialog used
   for splash messages during the installation.
    Syntax =
    $SPLASH-MESSAGE=filename;left;top;width;height;max-lines-for-each-message

6A. New support for $ELSE (or #ELSE) for use with "IF" commands

7.  New support for declaring and using variables in batch files. A variable
   MUST be declared BEFORE it is used in any way. It is advised that variable
   declarations be done at the beginning of the batch file (either immediately
   before or after #CONST and #DEFINE statements. Below is the support for
   variables;

   1.	Declare a variable		
	#VAR <variablename> or $VAR <variablename>

	e.g.,	#VAR ChiefDir
		$VAR ChiefInstaller

   2.	Assign a value to a variable	
	ASSIGN;@<variablename>=<value>	

	e.g,	ASSIGN;@ChiefDir=C:\CHIEFPRO
		ASSIGN;@ChiefInstaller=Chief's Installer Pro

   3.	Check if a variable has a value
	IF ASSIGNED;@variablename;<command>
	IF NOT-ASSIGNED;@VariableName;<command>

	e.g.,	IF ASSIGNED;@ChiefDir;GOTO CONTINUE
		IF NOT-ASSIGNED;@ChiefDir;GOTO TERMINATE

   4.	Use a variable in an expression
	@%variablename%
	
	e.g.,	IF ASSIGNED;@ChiefDir;CHDIR @%ChiefDir%
		ASSIGN;@ChiefBackup=@%ChiefDir%\BACKUP
		MKDIR @%ChiefBackup%
		COPY @%ChiefDir%\*.CHF @%ChiefBackup%

   5.   Check if a value/variable is the same as another 
        value/variable

        IF EQUAL;@%VARIABLE1%;value;<command>
        IF NOT-EQUAL;@%VARIABLE1%;value;<command>

	e.g.,
	IF EQUAL;@%Customer1%;@%Customer2%;GOTO END;$ELSE GOTO NEXT

   6.   Add a variable/value to a variable value
	CONCAT;dest;value/variable to add

	e.g.,
	CONCAT;@%DestDir%;\TEMP
	CONCAT;@%DestDir%;@%TmpName%


8. Enhancement of $BITMAP - to provide for the display of
   more than 1 bitmap. You can now have multiple $BITMAP
   lines, each pointing to a different bitmap, and (optionally)
   stating whether it should be stretched or not. Each of them
   will be displayed in order as the installation proceeds.

   If the first $BITMAP is not found, then no bitmap will be
   displayed. 

9. Enhancement of colour commands. It is now possible to use predefined 
    strings for some colour values, for these reserved words;

	$BANNER-TEXT-COLOR
	$BANNER-TEXT-BACKGROUND
	$BANNER-WINDOW-BRUSH
	$BANNER-SHADOW-COLOR
	$SMALL-METER-COLOR
	$BIG-METER-COLOR

  The predefined (case insensitive) string values are;
	Cyan
	White
	Black
	Red
	Green
	Blue
	Yellow
	Magenta
	Gray
	LightGray
	DarkGray
	DarkYellow
	Purple
	DarkRed
	DarkBlue
	DarkCyan
	DarkPurple

	examples:
	$BANNER-TEXT-COLOR=Purple
	$BANNER-TEXT-BACKGROUND=black
	$BANNER-WINDOW-BRUSH=yellow
	$BANNER-SHADOW-COLOR=Cyan


10. New batch command: IF DISKLABEL - to check the label of a
    disk/drive.

11. New reserved word: $BUILD-FILE-EX
    This command rebuilds a split file from the
    installation floppies (i.e., without having first to copy
    the files to the hard disk). If any of the parts of a split
    file is not found on the disk on which it is expected, a
    message dialog will come up, prompting the user to insert
    the disk containing that file. ChiefPro will then try to 
    read the file again. This will continue until the file is
    found, or the user clicks "Cancel".

12. New support for native ChiefPro archives, using LZSS compression.
    The support (to archive files) comes via ChiefPro IDE menu items, 
    and the files can be extracted from the archives via the $UNPAK
    reserved word, and the UNPAK batch command.

13. New reserved word: $UNPAK
    - to unpack a ChiefPro packed archive. This can only be used on a
    $DISK line;

    Syntax=
    $DISK#=$UNPAK;<packed file>;<target dir>;[code]

    The codes are the same as those in $UNZIP

14. New batch command: UNPAK

    - see $UNPAK above for syntax.

15. Portuguese and Esperanto language DLLs;

16. New (limited) support for BDE installation - archiving the BDE 
    files from the ChiefPro IDE, and then installing the BDE via
    batch files; sample batch files are supplied.

17. New batch commands: "SET-BDE-INSTALL", and "UNSET-BDE-INSTALL"
    - to mark the beginning and end of BDE install operations. It
    is necessary to do this, so that the BDE installation will not
    be logged for the uninstaller's use - otherwise, the BDE files may
    be removed by the installer, and the user may have other programs 
    that use the BDE. From the SET-BDE-INSTALL command until the next 
    "UNSET-BDE-INSTALL" command, no operation of the installer will be
    logged in the UNINSTAL.LOG file

18. New batch command: IF GETFILE - to retrieve a filename from a
    file dialog box
	Syntax=
	IF GETFILE;Caption;DefaultName;FileMask;<command>

19. New batch command: IF GETDIR - to retrieve a directory name
    from a dialog box
	Syntax=
	IF GETDIR;Caption;DefaultName;<command>

20. New support for "Wizards" - this can be turned on by
    using the "$USE-WIZARDS" command
	Syntax=
	$USE-WIZARDS=<CODE>

21. New reserved word: $MID-BATCH-FILE
    This is almost the same as $BATCH-FILE - except that in this case,
    the specfied batch file is executed immediately after the "Start
    Install" button is clicked - and before the installation of the
    files begins. This is useful for doing some preparatory work (e.g.
    backing up users' configuration files, etc), before the full 
    installation begins

    Note that anything done in a batch file called with this command 
    is not logged in UNINSTAL.LOG - and so it will not be undone by 
    the uninstaller.

22. New batch command: "DLLCOMMAND" - to load a DLL and run a command 
    from it;
	Syntax=
     	DLLCOMMAND;Dll_Name;16/32;FunctionName;Function Parameter
	
	The specified function must be in the following format;
	Returns :  a long integer   (you can access this through ERRORCODE)
	Parameter: a single null terminated string

	e.g.,
	DLLCOMMAND;$dest\dll\protect.dll;16;EncryptInfo;$windir\prog.ccc

23. New support for user DLLs: defaults to 16-bit DLL - "winstalu.dll"
    - but you can use the new $USER-DLL reserved word to point to a 
    different DLL, and to indicate whether it is 16-bit or 32-bit
	Syntax = $USER-DLL=<dllName>;[16/32]
	e.g.,
	$USER-DLL=PROG32.DLL;32
	
	The DLL can export 3 functions, which are called automatically if
	the DLL is loaded successfully;

	1. UserInitProc()  - called before any window appears
	2. UserMidProc()   - called immediately after clicking "start install"
	3. UserEndProc()   - called just before the installer terminates

	* each function takes a single parameter - a null terminated string
	* each function returns a long integer
	* the return value is ignored by the installer
	* the installer automatically passes some (pipe delimited) information 
          to the DLL via the null terminated string parameter - you can use this
	  information, or you may just ignore it - the functions (if found)
	  receive the equivalent of the following;

	UserInitProc() - receives: $SOURCEDIR|$SOURCEDRIVE|$TEMPDIR
	UserMidProc()  - receives: $SOURCEDIR|$SOURCEDRIVE|$TEMPDIR|$DEST
	UserInitProc() - receives: $SOURCEDIR|$SOURCEDRIVE|$TEMPDIR|$DEST

24. New reserved word: $SKIP-NEWER-FILES
    This command causes the installer to skip an existing file which
    is a newer (more recent version) than the version on the installation
    disks. This command takes no parameter.

25.  New support for debug information (while testing your installation)
     through the new reserved word: $DEBUG-LOG
        * this command takes no parameter
	* this MUST be the FIRST line in the WINSTALL.INF file
	* it is to be used for testing purposes only - do not use it
	  in the WINSTALL.INF file that you ship with your application

     When this feature is used, ChiefPro will create an ascii file called
     CHIEFBUG.LOG, in your TEMP directory. This file will contain the details
     of all the failed operations which the installer encounters. If the file
     exists already, it is appended to. If it does not exist, a new one is 
     created.

26. New support for test runs (i.e., files on $DISK lines will not be installed
    but the installer will go through the motions of installing them, and will
    also process other commands, including batch files).

    This is activated by a new reserved word: $TEST-RUN

    	* This command takes no parameter.
	* This is for testing purposes only. Do NOT use this in the WINSTALL.INF 
          file that you ship with your application
---------------------------------------------------------------------------
